/* eslint-disable no-undef */
/* eslint-disable no-unused-vars */
// 1. 封装一个函数实现字符串翻转。
function turn(str) {
    let arr = str.split('');
    // console.log(arr);
    let j = 0;
    for (let i = str.length - 1; i >= 0; i--) {
        arr[i] = str[j];
        j++;
    }
    return arr.join('');
}
console.log(turn('123456'));
// 2. 字符串 digite = "0123456789", 把前 5 个字符分割出来， 返回个单字符的数组, 注意， 返回数组里面的数字是字符串类型, string.split()
let digite = '0123456789';
function fn2(str) {
    return digite.slice(0, 5).split('');
}
console.log(fn2(digite));

// 3.已知有字符串 foo=”get-element-by-id”,写一个 function 将其转化成驼峰表示法”getElementById”.

let str3 = 'get-element-by-id';
function fn3(str) {
    let arr = str.split('-');
    console.log(
        arr
            .map(function (item, index) {
                // console.log(item);
                if (index == 0) return item;
                else {
                    item = item.charAt(0).toUpperCase() + item.slice(1);
                    return item;
                }
            })
            .join('')
    );
}
fn3(str3);
// 4.定义一个函数,将"今天是什么鬼天气，这么热，明天要去游泳！"里面的有"天"的下标输出(用 indexof())

let str4 = '今天是什么鬼天气，这么热，明天要去游泳！';
function fn4(str) {
    let index = str.indexOf('天');
    let arr = [];
    while (index !== -1) {
        arr.push(index);
        index = str.indexOf('天', index + 1);
    }
    return arr;
}
console.log(fn4(str4));

// 5.定义一个函数,将"今天是什么鬼天气，这么热，明天要去游泳！"里面的有"天"替换成"日"(用 replace())

let str5 = '今天是什么鬼天气，这么热，明天要去游泳！';
function fn5(str) {
    let index = str.indexOf('天');
    let arr = [];
    while (index !== -1) {
        arr.push(index);
        index = str.indexOf('天', index + 1);
    }
    let newArray = str.split('');
    for (let i = 0; i < arr.length; i++) {
        newArray[arr[i]] = '日';
    }
    return newArray.join('');
}
console.log(fn5(str5));

// 6.解析 URL Params 为对象，例如(https://www.baidu.com/s?ie=UTF-8&wd=letcode)

// 返回结构如下:
// {
//     ie:"UTF-8",
//     wd:"letcode"
// }

let url = 'https://www.baidu.com/s?ie=UTF-8&wd=letcode';
let ie = url.slice(url.indexOf('ie=') + 3, url.indexOf('&'));
let wd = url.slice(url.indexOf('wd=') + 3);
let obj = {};
obj.ie = ie;
obj.wd = wd;
console.log(obj);

// 7.查找字符串中(abbcccddddd)出现最多的字符和个数
let str7 = 'abbcccddddd';
function fn7(str) {
    let obj = {};
    let maxChar = '';
    let maxNum = 0;
    for (let i = 0; i < str.length; i++) {
        let char = str[i];
        let newArr7 = str.split('');
        num = newArr7.filter((item) => item === char).length;
        if (num > maxNum) {
            maxChar = char;
            maxNum = num;
        }
    }
    obj.maxChar = maxChar;
    obj.maxNum = maxNum;
    return obj;
}
console.log(fn7(str7));

// 8. "hi javascript hi hello world!" 改成 "Hi Javascript! Hi Hello World!"

let str8 = 'hi javascript hi hello world!';
function fn8(str) {
    let arr = str.split(' ');
    console.log(
        arr
            .map(function (item) {
                // console.log(item);
                item = item.charAt(0).toUpperCase() + item.slice(1);
                return item;
            })
            .join(' ')
    );
}
fn8(str8);

// 9. 把 "hi javascript!" 改成 "Hi Javascript!"
let str9 = 'hi javascript';
function fn9(str) {
    let arr = str.split(' ');
    console.log(
        arr
            .map(function (item) {
                // console.log(item);
                item = item.charAt(0).toUpperCase() + item.slice(1);
                return item;
            })
            .join(' ')
    );
}
fn9(str9);

// 10. 定义一个函数, 函数功能是检测字符串是否包含指定字符, (指定字符可以支持多个, 只要包含其中一个指定字符即返回结果)
str10 = '123456';
arr10 = ['1', '9'];
function fn10(str, arr) {
    // console.log(str10.split(""));
    for (let i = 0; i < arr.length; i++) {
        if (str.split('').some((item) => arr[i] === item)) return true;
        else return false;
    }
}
console.log(fn10(str10, arr10));
